<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1.forEach应用场景：用于遍历数组，相当于for循环另一种写法。
        // 2.语法：数组.forEach( function(value,index,arr){ // 算法 })

        // 3.forEach必须提供一个参数
        //  a.value:每次遍历到的数组元素
        //  b.index:每次遍历到的数组的下标
        //  c.arr:数组
        //  d.forEach

        let arr = [12,51,32,51,55,56]
        // 
        // 需求一：对数组进行累加

        // 原来的写法:
        // let num = 0;
        // for (let i = 0; i< arr.length;i ++){
        //     num += arr [1]
        //     // 
        // }
        // console.log(num);

        // 现在的写法
        let sum = 0
        arr.forEach(function(value){
            sum += value
        })
        console.log(sum);//257

        // 3.注意点：
        // a.回调函数执行次数 == 数组长度（数组中有多少元素，回调函数就执行几次)
        // b.forEach函数没有返回值
        // c.回调函数不需要return（就算手动reyurn，也不会结束循环）

        // 4.filter方法和forEach方法的参数完全相同。
        // filter主要是根据条件进行筛选，满足条件的值会被return返回，需要一个变量接受

        arr.forEach((item,index)=>{
            console.log(`下标为${index}的元素是${item}`);
        })
//         下标为0的元素是12
// 04.forEach.html:48 下标为1的元素是51
// 04.forEach.html:48 下标为2的元素是32
// 04.forEach.html:48 下标为3的元素是51
// 04.forEach.html:48 下标为4的元素是55
// 04.forEach.html:48 下标为5的元素是56
        
    </script>
</body>
</html>